/**
 * 天干地支五行颜色工具类
 */

// 天干地支对应的五行（合并）
export const GANZHI_WUXING: Record<string, string> = {
  // 天干
  '甲': '木',
  '乙': '木',
  '丙': '火',
  '丁': '火',
  '戊': '土',
  '己': '土',
  '庚': '金',
  '辛': '金',
  '壬': '水',
  '癸': '水',
  // 地支
  '子': '水',
  '丑': '土',
  '寅': '木',
  '卯': '木',
  '辰': '土',
  '巳': '火',
  '午': '火',
  '未': '土',
  '申': '金',
  '酉': '金',
  '戌': '土',
  '亥': '水'
}

// 五行对应的颜色
export const WUXING_COLORS: Record<string, string> = {
  '木': '#228B22', // 森林绿
  '火': '#FF4500', // 橙红色
  '土': '#D2691E', // 巧克力色
  '金': '#FFD700', // 金色
  '水': '#4169E1'  // 皇家蓝
}

// 五行对应的浅色背景（用于背景色）
export const WUXING_LIGHT_COLORS: Record<string, string> = {
  '木': '#dcfce7', // 木 - 浅绿色
  '火': '#fef2f2', // 火 - 浅红色
  '土': '#fef7ed', // 土 - 浅棕色
  '金': '#fef3c7', // 金 - 浅金色
  '水': '#eff6ff'  // 水 - 浅蓝色
}

/**
 * 获取天干或地支的五行
 * @param ganzhi 天干或地支（如：甲、子）
 * @returns 五行（木、火、土、金、水）
 */
export function getWuxing(ganzhi: string): string | null {
  return GANZHI_WUXING[ganzhi] || null
}

/**
 * 获取天干的颜色（根据五行）
 * @param tiangan 天干（如：甲、乙）
 * @returns 颜色值（十六进制）
 */
export function getTianganColor(tiangan: string): string {
  const wuxing = GANZHI_WUXING[tiangan]
  return wuxing ? (WUXING_COLORS[wuxing] || '#64748b') : '#64748b'
}

/**
 * 获取地支的颜色（根据五行）
 * @param dizhi 地支（如：子、丑）
 * @returns 颜色值（十六进制）
 */
export function getDizhiColor(dizhi: string): string {
  const wuxing = GANZHI_WUXING[dizhi]
  return wuxing ? (WUXING_COLORS[wuxing] || '#64748b') : '#64748b'
}

/**
 * 获取五行的颜色
 * @param wuxing 五行（木、火、土、金、水）
 * @returns 颜色值（十六进制）
 */
export function getWuxingColor(wuxing: string): string {
  return WUXING_COLORS[wuxing] || '#64748b'
}

/**
 * 获取天干的浅色背景（根据五行）
 * @param tiangan 天干（如：甲、乙）
 * @returns 颜色值（十六进制）
 */
export function getTianganLightColor(tiangan: string): string {
  const wuxing = GANZHI_WUXING[tiangan]
  return wuxing ? (WUXING_LIGHT_COLORS[wuxing] || '#f4f4f4') : '#f4f4f4'
}

/**
 * 获取地支的浅色背景（根据五行）
 * @param dizhi 地支（如：子、丑）
 * @returns 颜色值（十六进制）
 */
export function getDizhiLightColor(dizhi: string): string {
  const wuxing = GANZHI_WUXING[dizhi]
  return wuxing ? (WUXING_LIGHT_COLORS[wuxing] || '#f4f4f4') : '#f4f4f4'
}

/**
 * 获取五行的浅色背景
 * @param wuxing 五行（木、火、土、金、水）
 * @returns 颜色值（十六进制）
 */
export function getWuxingLightColor(wuxing: string): string {
  return WUXING_LIGHT_COLORS[wuxing] || '#f4f4f4'
}

